Skip to content

[pull] master from ruby:master#905

Merged
pull[bot] merged 10 commits intoturkdevops:masterfrom
ruby:master
Apr 2, 2026
Merged

[pull] master from ruby:master#905
pull[bot] merged 10 commits intoturkdevops:masterfrom
ruby:master

Conversation

@pull
Copy link
Copy Markdown

@pull pull bot commented Apr 2, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

jhawthorn and others added 10 commits April 1, 2026 19:21
The previous invalidation walked subclasses but missed cvars from
included modules, and skipped invalidation when creating a new cvar on
modules entirely. Always invalidate when a new class variable is
created, since this should be relatively rare.

We previously bumped the global state on any module inclusion, which
should be far more common than this.

[Bug #21978]
…de 26.5 beta

Xcode 26.5 beta ships a clang that promotes -Wincompatible-function-pointer-types to an error by default. The test's inline C extension defined `VALUE foo()` (taking no arguments) but passed it to `rb_define_global_function` which expects `VALUE (*)(VALUE)` through Ruby's RBIMPL_ANYARGS dispatch macro. Adding the `VALUE self` parameter fixes the signature mismatch.

ruby/rubygems@393490d8a5

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…s zlib warning

When a GzipReader is closed before all compressed data is consumed,
zlib emits "attempt to close unfinished zstream; reset forced" warning.
This happens in open_tar_gz because the TarReader stops reading at the
end-of-archive marker, leaving unconsumed compressed data in the stream.

ruby/rubygems@2b047e11fc

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ad of read

Replace gzio.read with IO.copy_stream(gzio, IO::NULL) to avoid
allocating a potentially large string when discarding unconsumed
compressed data.

ruby/rubygems@e4d0196887

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
JRuby does not require extension rebuilds when switching JRuby or Java
versions because Java extensions are shipped pre-compiled and JRuby does
not expose a version-specific C API. This means missing_extensions?
returning true on JRuby is almost always a false positive and the
suggested `gem pristine` is not actionable.

Return false early from missing_extensions? on JRuby so that all
downstream warnings and ignored-spec filtering are suppressed at the
source rather than patching each warning site individually.

ruby/rubygems@ba5c7cc0ce

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…-missing-extensions

When no gems have missing extensions (e.g. on JRuby where
missing_extensions? always returns false), display an informational
message instead of raising Gem::Exception.

ruby/rubygems@738d2dbdf6

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Bumps the rb-sys group with 1 update in the /test/rubygems/test_gem_ext_cargo_builder/custom_name/ext/custom_name_lib directory: [rb-sys](https://github.com/oxidize-rb/rb-sys).
Bumps the rb-sys group with 1 update in the /test/rubygems/test_gem_ext_cargo_builder/rust_ruby_example directory: [rb-sys](https://github.com/oxidize-rb/rb-sys).

Updates `rb-sys` from 0.9.124 to 0.9.125
- [Release notes](https://github.com/oxidize-rb/rb-sys/releases)
- [Commits](oxidize-rb/rb-sys@v0.9.124...v0.9.125)

Updates `rb-sys` from 0.9.124 to 0.9.125
- [Release notes](https://github.com/oxidize-rb/rb-sys/releases)
- [Commits](oxidize-rb/rb-sys@v0.9.124...v0.9.125)

---
updated-dependencies:
- dependency-name: rb-sys
  dependency-version: 0.9.125
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rb-sys
- dependency-name: rb-sys
  dependency-version: 0.9.125
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rb-sys
...

Signed-off-by: dependabot[bot] <support@github.com>

ruby/rubygems@e82e61c71b
`String#unpack` does not allow negative offset.
The inline constant cache previously used `RCLASS_SINGLETON_P` to detect
"unstable" CREFs that need ic_cref stored and checked on every IC hit.
This caused the `class << self` pattern to create inline caches which
requires extra checks and can't optimize as well by the JITs.

We can avoid this by replacing the `RCLASS_SINGLETON_P` check with a
`VM_DEFINECLASS_FLAG_DYNAMIC_CREF` flag added to the defineclass
instruction at compile time to indicate a dynamic class scope and
specifically avoid setting it for the `class << self` pattern.

We can apply the same logic to fix dynamic CREF on `module (expr)::Foo`.
We can say that any class definition which uses only constant references
is stable, or at least as stable as the cref it was declared inside.

[Bug #20948]
Bumps the github-actions group with 1 update in the / directory: [taiki-e/install-action](https://github.com/taiki-e/install-action).


Updates `taiki-e/install-action` from 2.70.4 to 2.71.1
- [Release notes](https://github.com/taiki-e/install-action/releases)
- [Changelog](https://github.com/taiki-e/install-action/blob/main/CHANGELOG.md)
- [Commits](taiki-e/install-action@bfadeab...0cccd59)

---
updated-dependencies:
- dependency-name: taiki-e/install-action
  dependency-version: 2.71.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
@pull pull bot locked and limited conversation to collaborators Apr 2, 2026
@pull pull bot added the ⤵️ pull label Apr 2, 2026
@pull pull bot merged commit 3319be0 into turkdevops:master Apr 2, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants